1. Field of the Invention
This invention relates generally to the field of multiprocessor systems, and more particularly to a multiprocessor system in which the processors communicate with each other through an internal bus or another interconnect device by using a network protocol.
2. Description of the Related Art
In a network computing environment, user application programs communicate by using a network application layer protocol. For example, an electronic mail(e-mail) program on a desktop system (a client machine) communicates with a mail server program on server computers by using a mail transfer protocol such as the Post Office Protocol(POP) or the Simple Mail Transfer Protocol(SMTP). In another example of a networked application system, a web browser communicates with web servers by using the Hyper Text Transfer Protocol (HTTP).
The application programs communicate with the network through certain Application Program Interfaces (APIs), such as, the Sockets API to the TCP/IP system, or the NetBIOS and the TLI (Transport Layer Interface) APIs. Under an API, there are layers of various protocol stacks which ensure that data between programs are transferred in order, without loss of data or other errors. Examples of such protocol stacks are TCP/IP, SPX/IPX and NetBEUI. These protocols are respectively implemented by a collection of programs called network drivers.
Under the network drivers, there are the hardware drivers which actually control the appropriate hardware to transfer data from one networked location to another. These hardware drivers, and the corresponding hardware, are implemented using standard specifications such as the Ethernet (IEEE 802.3), Asynchronous Transfer Mode (ATM), Token Ring (IEEE 802.5), and other Wide Area Networking (WAN) standards such as the Integrated Subscriber Digital Network (ISDN), X.25, Frame relay, Digital Subscriber Line (DSL), Asynchronous Digital Subscriber Lines (ADSL) and the like. Finally, computers re physically connected by cables which generally conform with at least one of these standards.
Network interface hardware is generally provided inside a computer. For example, there may be an ethernet hardware component, such as an ethernet card, which is attached to an I/O(Input/Output) bus of the computer. Such an ethernet card may be made by a vendor such as Intel Corporation. In another example, a computer may have two ethernet cards attached to an I/O bus, where one of the cards is made by Intel and the other card is made by another vendor, such as Compaq Corporation. In the latter situation, the lowest layer of the network driver discriminates which hardware card can be used by referring to the computer""s configuration and the request made by the application program.
FIGS. 1a and 1b provide examples of networking layers in a distributed application system. FIG. 1a shows application programs 10 invoking the services of a transport independent API 11, such as the Sockets, TLI, CPI/C or the Named Pipes API. These API""s provide access to the implementations of the various networking transport protocols 12 such as the TCP/IP, SNA, IPX/SPX, or NetBIOS. Layered beneath the implementations of the transport protocols 12 are the logical network drivers 13 which are accessible by standard interfaces such as the NDIS or the ODI interfaces. The logical network drivers interact with the hardware 14 that are implemented using standard specifications such as the Token Ring, Ethernet or the ISDN specifications.
FIG. 1b shows how the layers of the commonly used networking software map to the seven logical layers of the OSI reference model which has the application layer 15 at the top providing the interface for the application programs. The physical layer 21 at the bottom defines the specifications for the networking hardware and media. The intermediate layers of the OSI model include the presentation layer 16, the session layer 17, the transport layer 18, the network layer 19 and the logical link layer 20.
An example that discusses the layers underlying the communication of an internet web browser (such as Internet Explorer or Netscape Navigator) with an internet web server is illustrative. As shown in FIG. 2, an internet web browser 22 communicates with an internet web server by using the HTTP application layer protocol. To communicate by HTTP, a browser must use a lower level protocol, such as the TCP/IP protocol, to ensure that all the data transmitted is delivered in order, without errors or loss of data.
A TCP/IP implementation provides an API (Application Program Interface) 23, called Sockets API, for invoking the services of the TCP/IP software. Therefore, the API is a way for the application programs to invoke the services of the network drivers 24. Network driver software 24 must also be provided to implement the TCP/IP protocol. These network drivers 24 in turn invoke hardware drivers 25, by calling library routines such as read, write, and ioctl to transfer, receive, or control information from a network. Network drivers 24 are provided configuration information of the networking hardware 26 by the operating system, such as whether an ethernet adapter or an ATM adapter is provided in the computer.
Therefore, transferring data between one machine and another primarily includes the basic (or primitive) xe2x80x9csendxe2x80x9d operation. Accordingly, a primitive operation of the hardware driver to invoke this functionality is a SEND command (or function call) which is provided by the hardware driver to cause the networking hardware to send the provided data across the network. Likewise, the primitive operation of READ causes the hardware driver to read data from the network.
Examples of a conventional multiprocessor system is described in a text titled xe2x80x9cComputer Architecture: A Quantitative approach,xe2x80x9d John Hennessy and David Patterson, 2nd edition, Morgan Kaufman, 1996. A first example described in the text is illustrated with reference to FIG. 3, which shows a generic interconnection network 30 connecting the nodes 31 of a parallel processing computer system. For example, a Massively Parallel Processor (MPP) can interconnect thousands of nodes 31 with a very short maximum distance, often less than 25 meters.
With reference to FIG. 4, which discusses a second example from the text, a distributed memory machine is shown. The distributed memory machine consists of individual nodes 33 containing a processor, some memory 34 and typically some I/O 35, and an interface to an interconnect device 32.
In contrast, in conventional computer networks which connect together several computer systems, a network protocol is used by the computer systems to communicate with a network through the network hardware, such as a Network Interface Card (NIC) and the network software which includes a network driver. Typically, a network operating system (NOS) is provided to coordinate the communications between the nodes of the computer network.
However, none of these prior art systems disclose that an internal or CPU bus, or a similar interconnect device, is addressed as a separate networking device so that the different processors in a multi-processor system communicate with each other using a network protocol. That is, none of the prior art discussed above, disclose the use of a network protocol to communicate between the processors of a multi-processor system in which the processors are connected to each other by a suitable interconnect device, such as a shared bus. Accordingly, none of the prior art discussed above suggests providing a network driver for the interconnect device so that the processors of a multi-processor system can communicate with each other through the interconnect device by using a standard network protocol.
Therefore, it is a general object of the invention to alleviate the problems and shortcomings identified above.
One of the objects of the invention is to provide a multi-processor computer system in which the processors communicate with each other through an interconnect device by using a network protocol.
Another object of the invention is to provide a multi-processor computer system in which the processors communicate with each other through a shared bus by using a network protocol.
Another object of the invention is to provide a multi-processor communication system in which the processors communicate with each other through a shared PCI bus by using the TCP/IP protocol.
A further object of the invention is to provide a multi-processor computer system in which the processors communicate with each other through a switched interconnect device by using a network protocol.
Another object of the invention is to provide a multi-processor computer system in which the processors communicate with each other through a switched interconnect device by using the TCP/IP protocol.
Another one of the objects of the invention is provide a method of communicating between the processors of a multi-processor system in which the processors communicate through an interconnect device by using a network protocol.
A further object of the invention is to provide a method of communicating between the processors of a multi-processor system in which the processors communicate through a shared bus by using a network protocol.
Another object of the invention is to provide a method of communicating between the processors of a multi-processor system in which the processors communicate through a switched interconnect device by using a network protocol.
A further object of the invention is to provide a method of communicating between the processors of a multi-processor system in which the processors communicate through an interconnect device by using the TCP/IP network protocol.
These and other objects are achieved by providing a multi-processor computer system which includes a plurality of computing cells, each of which comprises a processor, a memory and a network interface unit. The computing cells are connected together through an interconnect device. Each of the computing cells is provided with a network driver for the interconnect device so that the computing cells can communicate with each other through the interconnect device by using a network protocol, such as the TCP/IP network protocol.
Also provided is a method for communicating between the processors of a multiprocessor system which includes providing a plurality of computing cells, each containing a processor, a memory and a network interface unit; connecting the computing cells by using an interconnect device; and providing each computing cell with a network driver for the interconnect device so that the computing cells communicate with each other through the interconnect device by using a network protocol, such as the TCP/IP network protocol.